package Q;

import java.util.Scanner;

/*
		
		성적데이터를 Scanner 클래스로 입력받고 총점, 평균, 학점을 계산한 후 그 결과를
		SungJukVO에 저장하고, SungJukDAO 로 그것을 넘김
		
 */

public class EX01_SungJukService implements EX01_ISungJukService{
	Scanner sc = new Scanner(System.in);
	EX01_SungJukVO svo = new EX01_SungJukVO();
	EX01_SungJukDAO sdao= new EX01_SungJukDAO(); 
	
	@Override
	public int tot(int kor, int eng, int mat) {
		
		return kor + eng + mat;
		
	}
	
	@Override
	public double avg(int tot) {
		
		return 
				Math.round(((tot) / (double)3)*100) / 100.0;
		
	}
	
	@Override
	public String grd(double avg) {
		
		switch((int)avg / 10){
		
		case 10 : case 9 : 
			return "A";
		case 8 : 
			return "B";
		case 7 : 
			return "C";
		case 6 : 
			return "D";
		default : 
			return "F";
		}
	}
	
	@Override
	public void createSungJuk() {
		
		System.out.println("이름을 입력하세요");
		svo.setName(sc.next());
		
		while(true){
			System.out.println("국어 점수를 입력하세요");
			svo.setKor(sc.nextInt());
			if(svo.getKor() >= 0 && svo.getKor() <= 100){
				break;
			}else System.out.println("국어 점수를 다시 입력하세요");
		}
		
		while(true){
			System.out.println("영어 점수를 입력하세요");
			svo.setEng(sc.nextInt());
			if(svo.getEng() >= 0 && svo.getEng() <= 100){
				break;
			}else System.out.println("영어 점수를 다시 입력하세요");
		}
		
		while(true){
			System.out.println("수학 점수를 입력하세요");
			svo.setMat(sc.nextInt());
			if(svo.getMat() >= 0 && svo.getMat() <= 100){
				break;
			}else System.out.println("수학 점수를 다시 입력하세요");
		}
		
		svo.setTot(this.tot(svo.getKor(), svo.getEng(), svo.getMat()));
		svo.setAvg(this.avg(svo.getTot()));
		svo.setGrd(this.grd(svo.getAvg()));
		
		System.out.println("이름 : " + svo.getName());
		System.out.println("국어 점수는 : " + svo.getKor() + "점 입니다.");
		System.out.println("영어 점수는 : " + svo.getEng() + "점 입니다.");
		System.out.println("수학 점수는 : " + svo.getMat() + "점 입니다.");
		System.out.println("총점은 : " + svo.getTot() + "점 입니다.");
		System.out.println("평균은 : " + svo.getAvg() + "점 입니다.");
		System.out.println("학점은 : " + svo.getGrd() + "입니다.");
		
		if(sdao.insertSungJuk(svo))
			System.out.println("성적기입 성공");
		else
			System.out.println("성적기입 실패");
	}

	@Override
	public void readSungJuk() {
		for(EX01_SungJukVO sj : sdao.selectSungJuk()){
			
			System.out.print(sj.getName());
			System.out.print("/");
			System.out.print(sj.getKor());
			System.out.print("/");
			System.out.print(sj.getEng());
			System.out.print("/");
			System.out.print(sj.getMat());
			System.out.print("/");
			System.out.print(sj.getTot());
			System.out.print("/");
			System.out.print(sj.getAvg());
			System.out.print("/");
			System.out.print(sj.getGrd());
			System.out.println("/");
			
			
		}
		
		
	}
	
	
	
	
}
